1. Technical Field
This invention relates to identifying a service instance for a client from a standard directory service. More specifically, the selection of the service instance is based upon proximity of the client with regard to the service instance.
2. Description of the Prior Art
A directory service is a central point where network services, security services, and applications can form an integrated distributed computing environment. LDAP (Lightweight Directory Access Protocol) is a software protocol for providing directory service enablement to a large number of applications. LDAP is a “lightweight” version of DAP (Directory Access Protocol), which is part of X.500, a standard for directory services in a network. These applications range from e-mail to distributed system management tools. LDAP is an evolving protocol model based on the client-server model in which a client makes a TCP/IP connection to an LDAP server.
The LDAP information model is based on an “entry”, which contains information about some object. Entries are typically organized in a specified tree structure, and each entry is composed of attributes. FIG. 1 is an example of an LDAP-managed domain tree shown organized in a simple tree hierarchy (10). The tree is made up of one or more domains, where a domain is a collection of one or more systems managed as a single security entity. In this example, the root domain (12) is shown as ibm.com, with an intermediate tier (20) having two intermediate nodes (22) and (24), and a final tier (30) having four leaf nodes (32), (34), (36), and (38). Intermediate node (22) is in communication with leaf nodes (32) and (34), and intermediate node (24) is in communication with leaf nodes (36) and (38). Multiple domains can be connected by trust relationships and share a common directory schema. The domains in the tree (10) share a contiguous namespace. One or more domain trees can be configured to trust one another and share a common schema, but not a contiguous namespace. A trust relationship among domain trees creates a forest. Any service, and any client of that service, in the directory forest can be located within a specified domain. Examples of a service include, but are not limited to, an instance of a service that directs clients to a Microsoft Terminal Services session running on servers in a data center. Similarly, examples of a client include, but are not limited to, a thin client, such as a terminal, that needs to contact the instance of the service to find out which server to connect to. In general, a network administrator would like a client to connect to an instance of the service that is close to that client on the network, while ensuring that no one instance of the service is overloaded.
Active Directory (AD) is a specific implementation of the LDAP protocol from Microsoft. Microsoft has defined a scheme for publishing services in AD specifically and in any LDAP-compliant directory in general. In this scheme, a service is represented by a directory class called a Service Connection Point (SCP). An instance of the SCP class is known as an SCP object. An SCP has at least two attributes, including service binding information and keywords. An attribute is a field associated with the SCP object to store SCP object associated data. The service binding information of the SCP object contains binding information that a client can use to connect to a specified instance of the service. The binding information is stored in a string format in an SCP attribute called Service Binding Information. The content of this string is service specific. For example, in the case of a web service, the binding information may be in the form of a URL. The keyword attribute of the SCP object is used to identify the type of service with which the SCP object is associated. In the prior art, it is known to associate a global unique identifier (GUID) with each type of service and to store the GUID in the keywords attribute. Through the SCP object and keywords, a client may locate an instance of a service. The query used to locate the instance of the service returns a list of multiple SCP objects to the client. However, the returned list does not direct the client to a preferred service instance.
Therefore, there is a need for a scheme that supports automatic location of a service on a network for a requesting client. The located service should be close to the client. At the same time, management of the instance of the service located for the client should prevent overload of the service instance.